1. References
The following U.S. patents and papers provide useful background information, for which they are incorporated herein by reference in their entirety.
a) Patents
4,897,781January 1990Chang et al.5,113,519May 1992Johnson et al.5,163,131November 1992Row et al.5,355,453October 1994Row et al.5,594,918January 1997Knowles et al.5,644,751July 1997Burnett5,689,706November 1997Rao et al.5,802,366September 1998Row et al.5,835,942November 1998Putzolu5,893,140August 1999Vahalia et al.5,918,229June 1999Davis et al.5,931,918August 1999Row et al.5,963,963October 1999Schmuck et al.5,978,843November 1999Wu et al.6,061,720May 2000Kamel et al.6,119,151September 2000Cantrell et al.6,247,077June 2001Muller et al.6,260,040July 2001Kauffman et al.b) Other References“GPFS—General Parallel File System for the RS/6000 SP”, IBM Almaden Research Center
2. Introduction
Computers use network connectivity for sharing files that may be remotely located from the computer (node) that uses the files. The advantage of such a capability lies in the fact that files can be shared among users, seamlessly and in a transparent manner. However, a variety of issues need to be considered and overcome in order to ensure data coherency and consistency over the network. It is further required that a user computer is provided with fast acces to the files in the network. Also, such a network needs to be scalable to include a fresh addition of a large number of new nodes to the network.
A shared file system (SFS) is a conventional technique used for sharing files, or file objects, over a network. Such a SFS allows files to be shared between multiple users and attempts to manage the consistency and performance requirements in an efficient manner. One popular example of a shared file system, which is also a distributed system is GPSF (General Parallel File System) designed by International Business Machines for use in conjunction with its RS/6000 series of computers. Basically, it operates by connecting the application nodes through a network of switches to a plurality of storage nodes. Each storage node is further connected to pools of storage disks where data is stored. Every application node, specifically each client of such a node, may be provided with the permission to access files and file objects on every disk.
It is known that shared file systems provide important advantages to systems that require files to be accessed by two or more users. However, certain inherent risks are also present in such a network system. In addition, ensuring data integrity in a SFS is a challenge. Further, additional performance penalty results from using network resources to ensure such data integrity. Still further, files shared by multiple users are susceptible to accidental or willful corruption. This is partly due to the fact that more than a single user may modify or write to such a file or file object. In addition, users may modify files without knowing that others have also modified them previously or subsequently, thereby increasing the likelihood of file system failure.
GPFS, for example, like other conventional solutions, extensively uses a central file system manager to handle all system changes and SFS configuration. It also uses a single node to read and write configuration data. In addition, such a system frequently uses a variety of locking mechanisms that prevent two or more users from concurrently accessing a single file. Naturally, these requirements result in reduced performance due to the associated bottlenecks. This has become a more prevalent problem as the storage capacity of computer networks are increasing significantly. Also, this poses limits to the scalability of conventional SFS.
It would therefore be advantageous to provide a SFS that is capable of providing scalability over large computer networks that use significantly large storage capacity. It would be further advantageous if such systems were capable of providing a high level of performance including caching capabilities. It would be also advantageous if distributed caching capabilities are provided.